
var b = {
    name: 'aa'
}
function a(ee,e) {
    console.log(this.name);
    // console.log(ee + e);
    return ee + e
}

// b.a()
// call只有函数才能调用
// var c = 123
// c.call(b)

// a.call(b) 源码
Function.prototype.mycall = function(context) {
    // 调用call的是this
    
    if(typeof this !== 'function') {
    // 如果调用我的不是个函数，就报错
        throw new TypeError('Error')
    } 
    context = context || window
    const args = [...arguments].slice(1) // 传入其他参数

    // 把调用我的那个函数获取到，复制到context
    context.fn = this

    // 把得到的值返回
    let result = context.fn(...args)
    delete context.fn
    return result
}

a.mycall(b,1,32)